/*----------------------------------------------------------------------------*\
|
|						Public Interface to Muse Technology
|
|							     www.Muse.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: Window.h,v 1.1 2009/04/03 12:46:10 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#ifndef __Window__
#define __Window__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <MReference.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN

//////////////////////////////////////////////////////////////////////////

	typedef MPtr<class Window>WindowPtr;

	//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented window interface.
	class API Window : public MReference
	{
	public:
		// constructor
		Window();

		// destructor
		virtual ~Window();

		// get the handle
		INLINE HWND handle() const;

		// set the window text
		INLINE VOID setText( const CHAR* text );

		// move the window 
		INLINE VOID move( U32 w, U32 h, BOOL fullscreen );		
	
	public:
		// the window`s proc
		INLINE static LONG CALLBACK wndProc( HWND, UINT, WPARAM, LPARAM );

	private:
		HWND mWnd;		
	};

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __Window__

//////////////////////////////////////////////////////////////////////////